class Settings:
    """
        存储游戏中所有的设置的类
    """
    def __init__(self):
        """
            初始化游戏设置
        """
        self.screen_width = 800
        self.screen_height = 600
        self.bg_color = (230, 230, 230)

        # 飞船设置
        # self.ship_speed = 1.5
        self.ship_limit = 3

        # 子弹设置
        # self.bullet_speed = 1.5
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = (60, 60, 60)
        self.bullet_allowed = 3

        # 首先，添加一个控制外星人速度的设置
        # self.alien_speed = 1.0

        # 指定有外星人撞到屏幕边缘时，外星人群向下移动的速度。
        # 将这个速度与水平速度分开是有好处的，便于分别调整这两个速度。
        self.fleet_drop_speed = 10
        # fleet_direction为1表示向右移，-1表示向左移
        # self.fleet_direction = 1

        # 加快游戏节奏的速度
        # 用于控制游戏节奏的加快速度：
        # 2表示玩家每提高一个等级，游戏的节奏就翻一倍；
        # 1表示游戏节奏始终不变。
        # 将其设置为1.1能够将游戏节奏提高到足够快，让游戏既有难度又并非不可完成。
        self.speedup_scale = 1.1
        # 外星人分数的提高
        self.score_scale = 1.5
        # 调用initialize_dynamic_settings()初始化随游戏进行而变化的属性
        self.initialize_dynamic_settings()

    def initialize_dynamic_settings(self):
        # 初始化随游戏进行而变化的设置
        self.ship_speed = 1.5
        self.bullet_speed = 3.0
        self.alien_speed = 1.0

        self.fleet_direction = 1

        # 计分，随着游戏的进行，将提高每个外星人的分数。
        # 为确保每次开始新游戏时这个值都会被重置，我们在initialize_dynamic_settings()中设置它。
        self.alien_points = 50

    def increase_speed(self):
        # 提高速度设置
        self.ship_speed *= self.speedup_scale
        self.bullet_speed *= self.speedup_scale
        self.alien_speed *= self.speedup_scale
        # 提高了每个外星人的分数，分数为整数
        self.alien_points = int(self.alien_points * self.score_scale)


